<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Monkey PHP Framework</title>
<link type="text/css" href="statics/css/base.css" rel="stylesheet" />
<script type="text/javascript" src="statics/js/jquery.min.js"></script>
<!--prettify-->
<link type="text/css" href="statics/css/prettify.css" rel="stylesheet" />
<script type="text/javascript" src="statics/js/prettify.js"></script>
<script type="text/javascript" src="statics/js/html5.js"></script>
<script type="text/javascript" src="statics/js/monkey.js"></script>
</head>

<body>
<!--page_wrap:start-->
<div class="page_wrap">

<p>
<h2>2.20 MonkeyLabel标签\Monkey\Label\MonkeyLabel</h2><br />

<b>公开方法：</b><br />
<table class="table table_bordered table_striped">
	<thead>
		<tr>
			<th>方法名</th>
			<th>参数</th>
			<th>说明</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<th>::replaceTag</th>
			<td>无</td>
			<td>获取直接替换型标签。返回二维array。</td>
		</tr>
		<tr>
			<th>::callbackTag</th>
			<td>无</td>
			<td>获取回调替换型标签。返回二维array。</td>
		</tr>
	</tbody>
</table>

<b>注意：</b><br />
（1）这两个方法也是所有标签方案必须遵循的公共接口，见接口\Monkey\Label\_Interface<br />
（2）标签无歧义时，内部没有多余的空格<br /><br />


<b>常量标签：</b>__INDEX__、__STATICS__<br />
<b>解析为：</b>&lt;?php echo __INDEX__; ?&gt;、&lt;?php echo __ STATICS __; ?&gt;<br />
<b>说明：</b>前后都是双下划线，中间是大写字母，不存在常量时按原样输出。<br />

<b>变量标签：</b>{$name}<br />
<b>解析为：</b>&lt;?php echo $name; ?&gt;<br /><br />

<b>数组标签：</b>{$arr[2]...}、{$arr[key]...}、{$arr[$key]…}<br />
<b>解析为：</b>&lt;?php echo  $arr[2]; ?&gt;、&lt;?php echo  $arr['key']; ?&gt;  或  &lt;?php echo $arr[$key]; ?&gt;<br />
<b>说明：</b>省略号表示支持多维数组，多维数组中，数字、字符串键名及变量键名可以混用。数组标签还可以嵌套在其它标签中，嵌套时不要花括号。<br /><br />

<b>if 标签：</b>&lt;!--if/e--&gt;<br />
<b>解析为：</b>&lt;?php if( e ) { ?&gt;<br />
<b>说明：</b>e 为表达式，其余部分没有空格<br /><br />

<b>elseif 标签：</b>&lt;!--elseif/e--&gt;<br />
<b>解析为：</b>&lt;?php } elseif( e ) { ?&gt;<br />
<b>说明：</b>e 为表达式，其余部分没有空格<br /><br />

<b>else 标签：</b>&lt;!--else/--&gt;<br />
<b>解析为：</b>&lt;?php } else { ?&gt;<br />
<b>说明：</b>没有空格<br /><br />

<b>foreach 标签：</b>&lt;!--as/$array $value--&gt;、&lt;!--as/$array $key $value--&gt;<br />
<b>解析为：</b> &lt;?php foreach($arr as $vo){ ?&gt;、 &lt;?php foreach($arr as $key => $vo){ ?&gt;<br />
<b>说明：</b>没有多余空格<br /><br />

<b>for 标签：</b>&lt;!--for/e1; e2; e3--&gt;<br />
<b>解析为：</b>&lt;?php for( e1; e2; e3 ) { ?&gt;<br />
<b>说明：</b>e1、e2、e3 为表达式，其余部分没有空格<br /><br />

<b>while 标签：</b>&lt;!--while/condition--&gt;<br />
<b>解析为：</b>&lt;?php while(condition) { ?&gt;<br />
<b>说明：</b>condition 为条件表达式，其余部分没有空格<br /><br />

<b>语句块结束标签：</b>&lt;!--/--&gt;<br />
<b>解析为：</b>&lt;?php } ?&gt;<br />
<b>说明：</b>没有空格<br /><br />

<b>函数调用标签：</b>{f:code}<br />
<b>解析为：</b>&lt;?php echo code; ?&gt;<br />
<b>说明：</b>函数调用标签中非 php 自带的函数，需要在模板执行前手动加载；并且只能写一句，句末不要分号，引擎自动加上分号；<br /><br />

<b>直接输出型 API 标签（可以不带参数） ：</b><br />
{apiname::methodname pname1=pvalue1 pname2='pvalue2' ...} <br />
<b>解析为：</b><br />
<pre class="prettyprint linenums">
&lt;?php echo call_user_func(array('Label\\apiname', 'methodname'), array('pname1'=>pvalue1, 'pname2'=>'pvalue2' ) ); ?&gt;
</pre>
<b>说明：</b>没有多余空格，返回字符串或数字等标量。不需要语句块结束标签。<br /><br />

<b>循环输出型 API 标签（可以不带参数） ：</b> <br />
<pre class="prettyprint linenums">
&lt;!--apiname::methodname pname1=pvalue1 pname2='pvalue2' ...--&gt;
……（这里是非标签内容）
&lt;!--/--&gt;
</pre>
<b>解析为：</b><br />
<pre class="prettyprint linenums">
&lt;?php $apiname_methodname=call_user_func(array('Label\\apiname', 'methodname'), array('pname1'=>'pvalue1','pname2'=>"pvalue2",) );
if(is_array($apiname_methodname)) foreach($apiname_methodname as $apikey => $apival) { ?&gt;
……（这里是非标签内容）
&lt;?php } ?&gt;
</pre>
<b>说明：</b>没有多余空格，返回数组，并对返回数组循环输出，你的列表内容可以放在上述非标签部分。需要语句块结束标签<br /><br />

<b>补充：</b><br />
（1）两种 API 条用中的可以不带参数，或者参数名可以为字符串、变量名等<br />
（2）从 API 标签的解析结果看，apiname 就是一种独有的全静态类，类名为\Label\apiname。


</p>


</div>
<!--page_wrap:end-->
</body>
</html>